From 20429f4764b8c50422c7d93824a12738e2eb7d42 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Fri, 25 Jan 2019 17:17:20 +0100 Subject: [PATCH] Remove :active state handling on widgets --- gtk/gtkbutton.c | 67 +++------------------------------------------ gtk/gtklistbox.c | 10 +------ gtk/gtkmenu.c | 10 ------- gtk/gtkrange.c | 27 ------------------ gtk/gtktexthandle.c | 30 -------------------- 5 files changed, 5 insertions(+), 139 deletions(-) diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c index 9dae0101cc..c0de0014a2 100644 --- a/gtk/gtkbutton.c +++ b/gtk/gtkbutton.c @@ -133,7 +133,6 @@ static void gtk_button_display_changed (GtkWidget *widget, static void gtk_button_unrealize (GtkWidget * widget); static void gtk_real_button_clicked (GtkButton * button); static void gtk_real_button_activate (GtkButton *button); -static void gtk_button_update_state (GtkButton *button); static void gtk_button_finish_activate (GtkButton *button, gboolean do_it); @@ -305,10 +304,8 @@ multipress_pressed_cb (GtkGestureMultiPress *gesture, priv->in_button = TRUE; if (!priv->activate_timeout) - { - priv->button_down = TRUE; - gtk_button_update_state (button); - } + priv->button_down = TRUE; + gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); } @@ -358,33 +355,7 @@ multipress_released_cb (GtkGestureMultiPress *gesture, sequence = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture)); if (sequence) - { - priv->in_button = FALSE; - gtk_button_update_state (button); - } -} - -static void -multipress_gesture_update_cb (GtkGesture *gesture, - GdkEventSequence *sequence, - GtkButton *button) -{ - GtkButtonPrivate *priv = gtk_button_get_instance_private (button); - gboolean in_button; - gdouble x, y; - - if (sequence != gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture))) - return; - - gtk_gesture_get_point (gesture, sequence, &x, &y); - - in_button = gtk_widget_contains (GTK_WIDGET (button), x, y); - - if (priv->in_button != in_button) - { - priv->in_button = in_button; - gtk_button_update_state (button); - } + priv->in_button = FALSE; } static void @@ -457,7 +428,6 @@ gtk_button_init (GtkButton *button) gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (priv->gesture), GDK_BUTTON_PRIMARY); g_signal_connect (priv->gesture, "pressed", G_CALLBACK (multipress_pressed_cb), button); g_signal_connect (priv->gesture, "released", G_CALLBACK (multipress_released_cb), button); - g_signal_connect (priv->gesture, "update", G_CALLBACK (multipress_gesture_update_cb), button); g_signal_connect (priv->gesture, "cancel", G_CALLBACK (multipress_gesture_cancel_cb), button); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (priv->gesture), GTK_PHASE_CAPTURE); gtk_widget_add_controller (GTK_WIDGET (button), GTK_EVENT_CONTROLLER (priv->gesture)); @@ -772,8 +742,6 @@ gtk_button_do_release (GtkButton *button, if (emit_clicked) gtk_button_clicked (button); - - gtk_button_update_state (button); } } @@ -805,7 +773,6 @@ gtk_real_button_activate (GtkButton *button) priv->activate_timeout = g_timeout_add (ACTIVATE_TIMEOUT, button_activate_timeout, button); g_source_set_name_by_id (priv->activate_timeout, "[gtk+] button_activate_timeout"); priv->button_down = TRUE; - gtk_button_update_state (button); } } @@ -820,8 +787,6 @@ gtk_button_finish_activate (GtkButton *button, priv->button_down = FALSE; - gtk_button_update_state (button); - if (do_it) gtk_button_clicked (button); } @@ -957,26 +922,6 @@ gtk_button_get_use_underline (GtkButton *button) return priv->use_underline; } -static void -gtk_button_update_state (GtkButton *button) -{ - GtkButtonPrivate *priv = gtk_button_get_instance_private (button); - GtkStateFlags new_state; - gboolean depressed; - - if (priv->activate_timeout) - depressed = TRUE; - else - depressed = priv->in_button && priv->button_down; - - new_state = gtk_widget_get_state_flags (GTK_WIDGET (button)) & ~(GTK_STATE_FLAG_ACTIVE); - - if (depressed) - new_state |= GTK_STATE_FLAG_ACTIVE; - - gtk_widget_set_state_flags (GTK_WIDGET (button), new_state, TRUE); -} - static void gtk_button_display_changed (GtkWidget *widget, GdkDisplay *previous_display) @@ -986,11 +931,7 @@ gtk_button_display_changed (GtkWidget *widget, /* If the button is being pressed while the display changes the release might never occur, so we reset the state. */ - if (priv->button_down) - { - priv->button_down = FALSE; - gtk_button_update_state (button); - } + priv->button_down = FALSE; } static void diff --git a/gtk/gtklistbox.c b/gtk/gtklistbox.c index 943b1d9a16..274956d8f8 100644 --- a/gtk/gtklistbox.c +++ b/gtk/gtklistbox.c @@ -1744,9 +1744,6 @@ gtk_list_box_multipress_gesture_pressed (GtkGestureMultiPress *gesture, if (row != NULL && gtk_widget_is_sensitive (GTK_WIDGET (row))) { priv->active_row = row; - gtk_widget_set_state_flags (GTK_WIDGET (priv->active_row), - GTK_STATE_FLAG_ACTIVE, - FALSE); if (n_press == 2 && !priv->activate_single_click) gtk_list_box_activate (box, row); @@ -1842,7 +1839,6 @@ gtk_list_box_multipress_gesture_released (GtkGestureMultiPress *gesture, if (priv->active_row) { - gtk_widget_unset_state_flags (GTK_WIDGET (priv->active_row), GTK_STATE_FLAG_ACTIVE); priv->active_row = NULL; } @@ -1857,7 +1853,6 @@ gtk_list_box_multipress_gesture_stopped (GtkGestureMultiPress *gesture, if (priv->active_row) { - gtk_widget_unset_state_flags (GTK_WIDGET (priv->active_row), GTK_STATE_FLAG_ACTIVE); priv->active_row = NULL; gtk_widget_queue_draw (GTK_WIDGET (box)); } @@ -2321,10 +2316,7 @@ gtk_list_box_remove (GtkContainer *container, if (row == priv->cursor_row) priv->cursor_row = NULL; if (row == priv->active_row) - { - gtk_widget_unset_state_flags (GTK_WIDGET (row), GTK_STATE_FLAG_ACTIVE); - priv->active_row = NULL; - } + priv->active_row = NULL; if (row == priv->drag_highlighted_row) gtk_list_box_drag_unhighlight_row (box); diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c index e8d5487153..45ac5b824d 100644 --- a/gtk/gtkmenu.c +++ b/gtk/gtkmenu.c @@ -3040,8 +3040,6 @@ gtk_menu_handle_scrolling (GtkMenu *menu, if ((priv->upper_arrow_state & GTK_STATE_FLAG_INSENSITIVE) == 0) { - gboolean arrow_pressed = FALSE; - if (gtk_widget_get_child_visible (priv->top_arrow_widget)) { scroll_fast = (y < rect.y + MENU_SCROLL_FAST_ZONE); @@ -3083,9 +3081,6 @@ gtk_menu_handle_scrolling (GtkMenu *menu, { GtkStateFlags arrow_state = 0; - if (arrow_pressed) - arrow_state |= GTK_STATE_FLAG_ACTIVE; - if (priv->upper_arrow_prelight) arrow_state |= GTK_STATE_FLAG_PRELIGHT; @@ -3111,8 +3106,6 @@ gtk_menu_handle_scrolling (GtkMenu *menu, if ((priv->lower_arrow_state & GTK_STATE_FLAG_INSENSITIVE) == 0) { - gboolean arrow_pressed = FALSE; - if (gtk_widget_get_child_visible (priv->bottom_arrow_widget)) { scroll_fast = (y > rect.y + rect.height - MENU_SCROLL_FAST_ZONE); @@ -3154,9 +3147,6 @@ gtk_menu_handle_scrolling (GtkMenu *menu, { GtkStateFlags arrow_state = 0; - if (arrow_pressed) - arrow_state |= GTK_STATE_FLAG_ACTIVE; - if (priv->lower_arrow_prelight) arrow_state |= GTK_STATE_FLAG_PRELIGHT; diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c index 74dea279b6..7e4082532e 100644 --- a/gtk/gtkrange.c +++ b/gtk/gtkrange.c @@ -1622,28 +1622,6 @@ gtk_range_unmap (GtkWidget *widget) GTK_WIDGET_CLASS (gtk_range_parent_class)->unmap (widget); } -static void -update_slider_state (GtkRange *range) -{ - GtkRangePrivate *priv = gtk_range_get_instance_private (range); - - if (priv->grab_location == priv->slider_widget) - gtk_widget_set_state_flags (priv->slider_widget, GTK_STATE_FLAG_ACTIVE, FALSE); - else - gtk_widget_unset_state_flags (priv->slider_widget, GTK_STATE_FLAG_ACTIVE); -} - -static void -update_trough_state (GtkRange *range) -{ - GtkRangePrivate *priv = gtk_range_get_instance_private (range); - - if (priv->grab_location == priv->trough_widget) - gtk_widget_set_state_flags (priv->trough_widget, GTK_STATE_FLAG_ACTIVE, FALSE); - else - gtk_widget_unset_state_flags (priv->trough_widget, GTK_STATE_FLAG_ACTIVE); -} - static void gtk_range_direction_changed (GtkWidget *widget, GtkTextDirection previous_direction) @@ -1699,9 +1677,6 @@ range_grab_add (GtkRange *range, */ priv->grab_location = location; - update_trough_state (range); - update_slider_state (range); - gtk_style_context_add_class (context, "dragging"); } @@ -1735,8 +1710,6 @@ range_grab_remove (GtkRange *range) priv->grab_location = NULL; - update_trough_state (range); - update_slider_state (range); update_zoom_state (range, FALSE); gtk_style_context_remove_class (context, "dragging"); diff --git a/gtk/gtktexthandle.c b/gtk/gtktexthandle.c index 84db1bedce..84405d297e 100644 --- a/gtk/gtktexthandle.c +++ b/gtk/gtktexthandle.c @@ -109,34 +109,6 @@ _text_handle_pos_from_widget (GtkTextHandle *handle, return -1; } -static void -gtk_text_handle_set_state (GtkTextHandle *handle, - gint pos, - GtkStateFlags state) -{ - GtkTextHandlePrivate *priv = handle->priv; - - if (!priv->windows[pos].widget) - return; - - gtk_widget_set_state_flags (priv->windows[pos].widget, state, FALSE); - gtk_widget_queue_draw (priv->windows[pos].widget); -} - -static void -gtk_text_handle_unset_state (GtkTextHandle *handle, - gint pos, - GtkStateFlags state) -{ - GtkTextHandlePrivate *priv = handle->priv; - - if (!priv->windows[pos].widget) - return; - - gtk_widget_unset_state_flags (priv->windows[pos].widget, state); - gtk_widget_queue_draw (priv->windows[pos].widget); -} - static void handle_drag_begin (GtkGestureDrag *gesture, gdouble x, @@ -164,7 +136,6 @@ handle_drag_begin (GtkGestureDrag *gesture, priv->windows[pos].dx = x; priv->windows[pos].dy = y; priv->windows[pos].dragged = TRUE; - gtk_text_handle_set_state (handle, pos, GTK_STATE_FLAG_ACTIVE); g_signal_emit (handle, signals[DRAG_STARTED], 0, pos); } @@ -202,7 +173,6 @@ handle_drag_end (GtkGestureDrag *gesture, gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture))); g_signal_emit (handle, signals[DRAG_FINISHED], 0, pos); priv->windows[pos].dragged = FALSE; - gtk_text_handle_unset_state (handle, pos, GTK_STATE_FLAG_ACTIVE); } static void -- 2.30.2